415. 字符串相加

给定两个字符串形式的非负整数 num1 和num2 ，计算它们的和并同样以字符串形式返回。
你不能使用任何內建的用于处理大整数的库（比如 BigInteger）， 也不能直接将输入的字符串转换为整数形式。

 
https://leetcode.cn/problems/add-strings/description/?orderBy=most_votes


void stringrevarse(char*head,char*end)
{
    while(head<end)
    {
        char tmp=*head;
        *head=*end;
        *end=tmp;
        head++;
        end--;
    }
}

char * addStrings(char * num1, char * num2)
{
    int nums1lens=strlen(num1)-1;
    int nums2lens=strlen(num2)-1;
    int ret=0;//加法
    int add=0;//进位
    int max=nums1lens>nums2lens?nums1lens:nums2lens;
    char *ans=(char*)malloc(sizeof(char)*(max+3));
    int len=0;
    while(nums1lens>=0||nums2lens>=0||add!=0)
    {
        int x=nums1lens>=0?num1[nums1lens]-'0':0;
        int y=nums2lens>=0?num2[nums2lens]-'0':0;
        ret=x+y+add;
        ans[len++]=ret%10+'0';
        add=ret/10;
        nums1lens--;
        nums2lens--;
    }
    //逆置串
    stringrevarse(ans,ans+len-1);
    ans[len]='\0';
    return ans;
}